侧边栏切换

工程师的NIOS II学习笔记

最后编辑于: 2010-03-10 23:57  |  分类: FPGA  |  标签: 软核 NIOS   |  浏览数: 731  |  评论数: 0


又一篇关于NIOS的旧文,虽然现在开发环境已经升级变化了,但还是有些参考价值的。

来源:嵌入式在线 作者:山城棒棒儿军 发布时间:2009-09-22 12:29:31

Nios Development Board Reference Manual, Stratix II Edition

Creating Multiprocessor NiosII Systems Tutorial

Nios II多处理器设计的注意点:

Nios II Flash Programmer User Guide

Simulating Nios II Embedded Processor Designs

“NiosII IDE Debugger + Signal Tap II + 物理板”的软硬件联调方式;

“NiosII IDE Debugger +指令集仿真器ISS”的软件调试方式(ISS可对部分组件建模);

使用ModelSim-Altera进行的RTL级的功能仿真方式(可以调试处理器及其 外设之间的交互情况)。本文针对RTL级仿真方式。

NIOS和NIOS II都使用了Avalon总线,这是一种交换式架构的片内总线

该总线形式和PCI、ISA等板间互连总线的最大区别在于:主从设备之间有紧密耦合关系。Avalon总线架构中,由硬件设计人员通过SOPC Builder规定互连的主从设备(包括数据、控制信号、片选、地址的互连),不连接的设备之间是互相看不到的。

每个Avalon主设备端有多路复用器,用来从多个从设备的数据总线中选择当前要访问的数据——这也是“交换”的含义所在。可见多路复用器的接口引 线相当多,这只能在连线资源丰富的FPGA内实现。所以说,Avalon总线架构是适用FPGA设计的。片外的交换式总线也有,但都是串行接口的,主要是 为了降低PCB布线难度,如:PCI Express、以太网等。由于,Avalon总线架构中所有设备没有实现全互连,也就不存在“全交换”。但即使这样,不同的主设备访问不同的从设备也是 可以同时的、并发的。

每个Avalon从设备都有仲裁器,仲裁各主设备的访问,确保访问周期的完整性和正确性。我们可以认为访问周期是“原子”的,即不被其他主设备破坏的。

软件对共享资源的访问,通常要求一个序列的多个访问不能被其他CPU打断,这不是“原子”级的访问周期设计能保证的,这也是SOPC Builder中提供了硬件共享互斥锁的由来。

各CPU上运行的软件都可对某个硬件共享互斥锁进行SET和TEST操作,以争取对资源的占用能力。由于对硬件共享互斥锁的访问周期是“原子”,所以硬件共享互斥锁能保证多CPU设计中软件级别的共享资源互斥访问。

NIOS II设计的灵活性是我感兴趣的主要原因。只要有足够的逻辑资源余量,NIOS II的设计是可以不断更新的,设计人员不用为自己的设计能力、CPU版本的升级担心,这放开了我们的“思维”约束。


上一篇: 关于新的描述语言gezel的介绍

下一篇: verilg 2001相对于verilog 1995的改进(内含乘方运算符)